package com.contest.controller;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.contest.constant.CommonsConstant;
import com.contest.entity.UserInfo;
import com.contest.entity.WarSituationSetup;
import com.contest.service.WarSituationSetupService;
import com.contest.util.DateUtil;
import com.contest.util.IdWorker;
import com.contest.util.PageUtils;
import com.contest.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;


/**
 * @author yfl
 * @email 617823298@qq.com
 * @date 2018-03-20 15:05:28
 */

@Controller
@RequestMapping("/warSituationSetup")
public class WarSituationSetupController {

    @Autowired
    WarSituationSetupService warSituationSetupService;
    @Autowired
    IdWorker idWorker;

    @RequestMapping("/list")
    @ResponseBody
    public PageUtils list(@RequestParam Map<String, Object> param) {
        int page = Integer.parseInt(param.get("page").toString());
        int rows = Integer.parseInt(param.get("rows").toString());
        Page<WarSituationSetup> mPage = new Page<WarSituationSetup>((page - 1) * rows, rows);
        mPage = warSituationSetupService.selectPage(mPage);
        return new PageUtils(mPage.getRecords(), mPage.getTotal());
    }

    @PostMapping("/save")
    @ResponseBody
    public R save(WarSituationSetup warSituationSetup, HttpServletRequest request) {
        warSituationSetup.setFdId(idWorker.nextId() + "");
        warSituationSetup.setFdCreatedTime(DateUtil.now());
        UserInfo userInfo = (UserInfo) request.getSession().getAttribute(CommonsConstant.LOGIN_SESSION);
        warSituationSetup.setFdCreator(userInfo.getFdNickname());
        if (warSituationSetupService.insert(warSituationSetup)) {
            return R.ok("操作成功!");
        } else {
            return R.error("操作失败");
        }
    }

    @GetMapping("/edit/{fdId}")
    public String edit(Model model, @PathVariable("fdId") String fdId) {
        WarSituationSetup warSituationSetup = warSituationSetupService.selectById(fdId);
        model.addAttribute("warSituationSetup", warSituationSetup);
        return "warSituationSetup/edit";
    }

    @PostMapping("/remove")
    @ResponseBody
    public R remove(@RequestParam("ids[]") String[] ids) {
        List<String> fdIds = new ArrayList<String>();
        for (String id : ids) {
            fdIds.add(id);
        }
        if (warSituationSetupService.deleteBatchIds(fdIds)) {
            return R.ok("删除成功");
        } else {
            return R.error(-1, "删除失败!");
        }
    }

    @PostMapping("/update")
    @ResponseBody
    public R update(WarSituationSetup warSituationSetup) {
        if (warSituationSetupService.updateById(warSituationSetup)) {
            return R.ok("更新成功!");
        } else {
            return R.error(-1, "更新失败!");
        }
    }

    /**
     * 战局手续费
     */
    @RequestMapping("/client/warFees")
    @ResponseBody
    public R warFees(){
        List<WarSituationSetup> setups = warSituationSetupService.selectList(null);
        if(setups.size() != 0){
            return R.ok(setups.get(0));
        }else{
            return R.error("暂无手续费");
        }
    }

}
